首先针对 nginx 的 php 安装和针对 apache 的 php 安装是有区别的,因为 nginx 中的 php 是以 fastcgi 的方式结合 nginx 的。可以理解为 nginx 代理了 php 的 fastcgi ,而 apache 是把 php 作为子机的模块来调用的。php官方下载地址
1.下载 php 源码包
1 2
| [root@lnmp ~] [root@lnmp src]
|
2.解压源码包
3.创建相关帐号
4.依赖包安装
1
| yum install -y bzip2-devel curl-devel db4-devel libjpeg-devel libpng-devel libXpm-devel gmp-devel libc-client-devel openldap-devel unixODBC-devel postgresql-devel sqlite-devel aspell-devel net-snmp-devel libxslt-devel libxml2-devel pcre-devel mysql-devel unixODBC-devel postgresql-devel pspell-devel net-snmp-devel freetype-devel libtomcrypt-devel.x86_64 php-mcrypt libmcrypt libmcrypt-devel
|
5.配置编译参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [root@lnmp src] [root@lnmp php-5.4.44] --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ --with-fpm-user=php-fpm \ --with-fpm-group=php-fpm \ --with-mysql=/usr/local/mysql \ --with-mysql-sock=/tmp/mysql.sock \ --with-libxml-dir \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-iconv-dir \ --with-zlib-dir \ --with-mcrypt \ --enable-soap \ --enable-gd-native-ttf \ --enable-ftp \ --enable-mbstring \ --enable-exif \ --disable-ipv6 \ --with-pear \ --with-curl \ --with-openssl
|
在该过程中,若出现和 lamp 安装 php 的错误一样的错误参照 lamp 的方法来解决,若出现如下错误,参考下面解决办法:
错误信息:
1 2
| configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
|
解决办法:
1
| yum install -y libcurl-devel
|
6.编译 php
在这一步,通常会遇到一些错误:
1 2 3
| /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/fpm/php-fpm] 错误 1
|
解决办法:
1
| yum install -y libtool-ltdl-devel
|
7.安装 php
以上每一步骤,如果没有完全执行正确,那么下一步是无法进行的,使用 echo $? 看结果是否为 “0”,如果不是,就是没有执行正确。
8.修改配置文件
1 2
| cp php.ini-production /usr/local/php/etc/php.ini vim /usr/local/php/etc/php-fpm.conf
|
添加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log [www] listen = /tmp/php-fcgi.sock user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024
|
保存配置文件后,检验配置是否正确的方法为:
1
| /usr/local/php/sbin/php-fpm -t
|
如果出现诸如 “test is successful” 字样,说明配置没有问题。
9.启动 php-fpm
首先要拷贝一个启动脚本到 /etc/init.d 下
1
| cp /usr/local/src/php-5.4.44/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
|
更改权限为755
1 2
| chmod 755 /etc/init.d/php-fpm service php-fpm start
|
如果要它开机启动,执行:
检测是否成功:
看看是不是有很多进程